使用Python发送和读取Lotus Notes邮件 您所在的位置:网站首页 ibm lotus notes怎么添加邮箱 使用Python发送和读取Lotus Notes邮件

使用Python发送和读取Lotus Notes邮件

2023-08-05 10:28| 来源: 网络整理| 查看: 265

使用Python发送和读取Lotus Notes邮件

本人原创,转载请注明出处 Blog:Why So Serious Github: LeoLuo22 CSDN: 我的CSDN

0x00前言

公司限制内部访问互联网,与外网的唯一通道只有Lotus Notes,所以与外界的一切交互只能通过Notes邮件来进行。之前为了提醒,实现了自动发送邮件的功能。但是我也想通过外网邮件传递指令给机器,比如关机,打卡,重启等等。要实现这些就要能够读取Notes邮件的内容,当时Google了一遍,发现大部分都是基于VB和.NET的,我试着用把他们的代码用Python实现,但是会出现各种异常,由此放下。这两个月以来一直很忙,也没精力在注意这些。直到昨晚,由于在公司值班,又有时间来研究一下。 先说一下环境:

OS: Windows 7 Enterprise 64Bit Lotus Notes 8.5.3 Python 3.5.3

0x01准备

首先要清楚两个概念:

邮件服务器 数据库文件

这两个东西很重要。Notes的邮件数据库是以.nsf文件的形式存储在服务器上的,所以要读取邮件内容,必须需要服务器名称和.nsf文件路径。这两个可以通过下列步骤找到。

选择文件->首选项 选择场所->联机(基于你的默认值) image 点击编辑 选择 服务器 选项,得到你的服务器名称 image 选择 邮件 选项,得到你的文件路径 image

其次,Notes只提供了COM接口,所以首先需要生成库。

from win32com.client import makepy makepy.GenerateFromTypeLibSpec('Lotus Domino Objects') makepy.GenerateFromTypeLibSpec('Lotus Notes Automation Classes') 0x02 读取邮件

首先,我们创建一个NotesMail对象,然后在init方法初始化连接。

class NotesMail(): """ 发送读取邮件有关的操作 """ def __init__(self, server, file): """初始化连接 @param server 服务器名 @param file 数据文件名 """ session = DispatchEx('Notes.NotesSession') server = session.GetEnvironmentString("MailServer", True) self.db = session.GetDatabase(server, file) self.db.OPENMAIL self.myviews = []

self.myviews保存数据库下所有的视图。

我们可以获取所有的视图名称:

def get_views(self): for view in self.db.Views: if view.IsFolder: self.myviews.append(view.name)

返回内容如下:

[‘(群组日历)’, ‘(规则)’, ‘( Alar



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有